import pandas as pd
from sqlalchemy import create_engine
import datetime
import openpyxl


def newColumn(col1, col2):
    #lambda表达式中，由多个列的值算出一个新列【注意这里的入参是两个入参数】
    if pd.isnull(col1) and pd.isnull(col2):
        return "普通订单"
    elif pd.isnull(col1) == False:
        return "退款订单"
    elif pd.isnull(col2) == False:
        return "种菜订单"
    return "1"


# 财务给出的，退款和种菜的订单，需要导入数据库
engine = create_engine('mysql+pymysql://jsbi:jsbi-1701@47.114.55.19:9011/biv1?charset=utf8')
con = engine.connect()

# filePath = 'D:/简尚家居/excel文件/云杉/6月(1).xlsx'
filePath = 'D:/简尚家居/钉钉下载目录/7月品类,退款和种菜数据-debug2.xlsx'
filePath = 'D:/简尚家居/钉钉下载目录/7月品类,退款和种菜数据.xlsx'
print('openpyxl开始读取文档:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
wb = openpyxl.load_workbook(filePath)
print('openpyxl读取文档完成:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# 获取workbook中所有的表格
sheets = wb.get_sheet_names()
# for i in range(0, len(sheets)):
for i in range(0, 1):
    # 0->4
    print('pd开始加载:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    df = pd.read_excel(filePath, sheet_name=i)
    print('pd加载完成:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    debug = ''
    df.head()
    # df.rename(columns={'订单支付金额 ': '订单支付金额'}, inplace=True)
    # lambda表达式中，由多个列的值算出一个新列
    df['订单类型'] = df.apply(lambda x: newColumn(x['匹配退款'], x['匹配种菜']), axis=1)
    df['交易月份'] = '7月'
    df['插入时间'] = datetime.datetime.now()
    df['导入文件名称'] = '7月品类,退款和种菜数据.xlsx'
    # 解决可能出现的超时问题bugfix 2020.08.18
    con.connection.connection.ping(reconnect=True)
    # 财务_京东自营_利润表
    df.to_sql(name='财务_拼多多_订单分类表', con=con, if_exists='append', index=False)
    print('完成一次数据保存,页:' + str(i))
    debug = ''
